package com.supermarket.business.mapper;

import java.util.List;
import com.supermarket.business.domain.SupermarketSalesOrder;
import com.supermarket.business.domain.SupermarketSalesDetail;

/**
 * 销售订单Mapper接口
 *
 * @author ruoyi
 * @date 2025-10-23
 */
public interface SupermarketSalesOrderMapper
{
    /**
     * 查询销售订单
     *
     * @param orderId 销售订单主键
     * @return 销售订单
     */
    public SupermarketSalesOrder selectSupermarketSalesOrderByOrderId(Long orderId);

    /**
     * 查询销售订单列表
     *
     * @param supermarketSalesOrder 销售订单
     * @return 销售订单集合
     */
    public List<SupermarketSalesOrder> selectSupermarketSalesOrderList(SupermarketSalesOrder supermarketSalesOrder);

    /**
     * 新增销售订单
     *
     * @param supermarketSalesOrder 销售订单
     * @return 结果
     */
    public int insertSupermarketSalesOrder(SupermarketSalesOrder supermarketSalesOrder);

    /**
     * 修改销售订单
     *
     * @param supermarketSalesOrder 销售订单
     * @return 结果
     */
    public int updateSupermarketSalesOrder(SupermarketSalesOrder supermarketSalesOrder);

    /**
     * 删除销售订单
     *
     * @param orderId 销售订单主键
     * @return 结果
     */
    public int deleteSupermarketSalesOrderByOrderId(Long orderId);

    /**
     * 批量删除销售订单
     *
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSupermarketSalesOrderByOrderIds(Long[] orderIds);

    /**
     * 批量删除销售明细
     *
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSupermarketSalesDetailByOrderIds(Long[] orderIds);

    /**
     * 批量新增销售明细
     *
     * @param supermarketSalesDetailList 销售明细列表
     * @return 结果
     */
    public int batchSupermarketSalesDetail(List<SupermarketSalesDetail> supermarketSalesDetailList);


    /**
     * 通过销售订单主键删除销售明细信息
     *
     * @param orderId 销售订单ID
     * @return 结果
     */
    public int deleteSupermarketSalesDetailByOrderId(Long orderId);
}
